from django.db import models


class UserModel(models.Model):
    """用户信息模型"""
    # blank=False: 这个参数用于表单验证，表示该字段在表单中不能留空。
    # null=False: 这个参数用于数据库层面，表示该字段在数据库中不能存储NULL值。
    user_name = models.CharField(max_length=255, verbose_name='用户名，用于登录')
    password = models.CharField(max_length=255, verbose_name='密码')
    full_name = models.CharField(max_length=255, verbose_name='姓名')
    email = models.CharField(max_length=255, verbose_name='邮箱')
    phone = models.CharField(max_length=255, verbose_name='手机号')
    icon = models.CharField(max_length=255, verbose_name='图标，头像')
    is_active = models.BooleanField(verbose_name='是否激活')
    is_admin = models.BooleanField(verbose_name='是否是管理员')
    login_fail_num = models.IntegerField(verbose_name='登录尝试次数：记录用户连续失败的登录尝试次数，用于防止暴力破解。')
    locked = models.BooleanField(verbose_name='锁定状态：标记用户账户是否被锁定（如多次登录失败）。')
    last_login_datetime = models.DateTimeField(verbose_name='最后登录时间')
    deleted = models.BooleanField(verbose_name='已删除，[TRUE:是, FALSE:否]')
    create_username = models.CharField(max_length=255, verbose_name='创建人姓名')
    create_datetime = models.DateTimeField(verbose_name="添加时间")
    update_username = models.CharField(max_length=255, verbose_name='更新人姓名')
    update_datetime = models.DateTimeField(verbose_name="更新时间")

    class Meta:
        app_label = 'systems'
        db_table = 'user'
        verbose_name = '用户信息'
        verbose_name_plural = verbose_name
